package com.ck.core.constant;

import java.time.Duration;

/**
* @Description: 使用SpringCache缓存时,类型定义。
 *       @link : com.ck.core.constant.CacheConstant
* @Author: hf
* @Date:    2019/5/22 10:32
* @Version: 1.0
*/
public enum SpringCacheStrategy {
    /** 系统配置缓存 */
    SYS_CONFIG("sysconfig",Duration.ofMinutes(10)),
    /** 数据字典缓存 */
    DICT("dict", Duration.ofHours(4)),
    ;
    /** 前缀 */
    public static final  String PREFIX = "ck.spring.cache.";

    /**
     * 缓存类型
     */
    private String type;

    /**
     * 超时时间
     */
    private Duration ttl;

    public String getType() {
        return type;
    }

    public Duration getTtl() {
        return ttl;
    }

    public String cacheKey () {
        return PREFIX + type;
    }

    SpringCacheStrategy(String type, Duration ttl) {
        this.type = type;
        this.ttl = ttl;
    }
}
